1. 为什么要使用缓存
在Django中,当用户请求到达视图后,视图会先从数据库提取数据放到模板中进行动态渲染,渲染后的结果就是用户看到的网页。如果用户每次请求都从数据库提取数据并渲染,将极大降低性能,不仅服务器压力大,而且客户端也无法即时获得响应。如果能将渲染后的结果放到速度更快的缓存中,每次有请求过来,先检查缓存中是否有对应的资源,如果有,直接从缓存中取出来返回响应,节省取数据和渲染的时间,不仅能大大提高系统性能,还能提高用户体验
2. cache 的介绍
- cache是Django提供的缓存系统和redis用法类似(推荐使用 redis)
- cache 缓存系统是基于Memcached事项的
- cache 只能缓存字符串
3. set(key, val, time)
- 设置缓存
- 参数:
- key: 缓存名
- val: 需要缓存的值
- time: 超时时间 -> 可以忽略不存
from django.core.cache import cache
cache.set('my_key', 'hello', 30)
4. get(key)
- 获取缓存
- 参数:
- key: 缓存名
from django.core.cache import cache
my_key = cache.get('my_key') # hello
my_key = cache.get('my_key') # 等待30秒后 -> None
5. add(key, value)
- 如果名为key的缓存名不存在就进行添加
- 参数:
- key: 缓存名
- val: 需要缓存的值
from django.core.cache import cache
cache.add('name', 'Kevin')
6.set_many(dict)
- 批量添加缓存
- 参数:
- dict: 存放着缓存名和需要缓存的值的键值对
from django.core.cache import cache
cache.set_many({'a': 1, 'b': 2, 'c': 3})
7.get_many(list)
- 批量获取缓存
- 参数:
- list: 存放着缓存名的列表
from django.core.cache import cache
cache_list = cache.get_many(['a', 'b', 'c']) # {'b': 2, 'a': 1, 'c': 3}
8. delete(key)
- 删除缓存
- 参数:
- key: 缓存名
from django.core.cache import cache
cache.delete('a')
9.delete_many(list)
- 批量删除缓存
- 参数:
- list: 存放着缓存名的列表
from django.core.cache import cache
cache.delete_many(['a', 'b', 'c'])
10.更加详细的用法

← auth 认证模块 csrf token →